package org.edu.modules.sxjy.feign;

import javax.servlet.http.HttpServletRequest;
import javax.transaction.Transactional;

import org.edu.common.api.vo.Result;
import org.edu.modules.sxjy.entity.SysLog;
import org.edu.modules.sxjy.entity.VeBaseAppUser;
import org.edu.modules.sxjy.entity.VeBaseBanJi;
import org.edu.modules.sxjy.entity.VeBaseDictData;
import org.edu.modules.sxjy.entity.VeBaseDictionary;
import org.edu.modules.sxjy.entity.VeBaseFaculty;
import org.edu.modules.sxjy.entity.VeBaseGrade;
import org.edu.modules.sxjy.entity.VeBaseStudent;
import org.edu.modules.sxjy.entity.VeBaseSysConfig;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.cloud.openfeign.SpringQueryMap;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;

/**
 * @author leidq
 * @create 2022-04-08 14:12
 */

@FeignClient("edu-common")
@Component
public abstract interface VeCommonClient {
    @GetMapping({"/common/veCommon/queryXueZhiList"})
    public abstract Result<?> queryXueZhiList(@RequestParam(name = "interfaceUserId", required = true) String paramString);

    @GetMapping({"/common/veCommon/queryGradeList"})
    public abstract Result<?> queryGradeList(@RequestParam(name = "interfaceUserId", required = true) String paramString);

    @GetMapping({"/common/veCommon/queryFacultyList"})
    public abstract Result<?> queryFacultyList(@RequestParam(name = "interfaceUserId", required = true) String paramString);

    @GetMapping({"/common/veCommon/querySpecialtyListByFalId"})
    public abstract Result<?> querySpecialtyListByFalId(@RequestParam(name = "interfaceUserId", required = true) String paramString, @RequestParam(name = "falId", required = true) Integer paramInteger);

    @GetMapping({"/common/veCommon/queryBanJiListBySpecId"})
    public abstract Result<?> queryBanJiListBySpecId(@RequestParam(name = "interfaceUserId", required = true) String paramString, @RequestParam(name = "specId", required = true) Integer paramInteger);

    @GetMapping({"/common/veCommon/queryBanJiListByGradeId"})
    public abstract Result<?> queryBanJiListByGradeId(@RequestParam(name = "interfaceUserId", required = true) String paramString, @RequestParam(name = "gradeId", required = true) Integer paramInteger);

    @GetMapping({"/common/veCommon/queryGradeById"})
    public abstract Result<?> queryGradeById(@RequestParam(name = "interfaceUserId", required = true) String paramString, @RequestParam(name = "gradeId", required = true) Integer paramInteger);

    @GetMapping({"/common/veCommon/queryBanJiList"})
    public abstract Result<?> queryBanJiList(@RequestParam(name = "interfaceUserId", required = true) String paramString);

    @GetMapping({"/common/veCommon/queryBanJiPageList"})
    public abstract Result<?> queryBanJiPageList(VeBaseBanJi paramVeBaseBanJi, @RequestParam(name = "pageNo", defaultValue = "1") Integer paramInteger1, @RequestParam(name = "pageSize", defaultValue = "10") Integer paramInteger2);

    @GetMapping({"/common/veCommon/queryBanJiPageListBySearch"})
    public abstract Result<?> queryBanJiPageListBySearch(@RequestParam(name = "interfaceUserId", required = true) String paramString1, @RequestParam(name = "code", required = false) String paramString2, @RequestParam(name = "bjmc", required = false) String paramString3, @RequestParam(name = "pageNo", defaultValue = "1") Integer paramInteger1, @RequestParam(name = "pageSize", defaultValue = "10") Integer paramInteger2);

    @GetMapping({"/common/veCommon/querySpecialtyById"})
    public abstract Result<?> querySpecialtyById(@RequestParam(name = "interfaceUserId", required = true) String paramString, @RequestParam(name = "specialtyId", required = true) Integer paramInteger);

    @GetMapping({"/common/veCommon/getStudentPageList"})
    public abstract Result<?> getStudentPageList(@RequestParam(name = "veBaseStudent") VeBaseStudent paramVeBaseStudent, @RequestParam(name = "pageNo", defaultValue = "1") Integer paramInteger1, @RequestParam(name = "pageSize", defaultValue = "10") Integer paramInteger2);

    @GetMapping({"/common/veCommon/getStudentPageListBySearch"})
    public abstract Result<?> getStudentPageListBySearch(@RequestParam(name = "interfaceUserId", required = true) String paramString1, @RequestParam(name = "xh", required = false) String paramString2, @RequestParam(name = "xm", required = false) String paramString3, @RequestParam(name = "sfzh", required = false) String paramString4, @RequestParam(name = "falId", required = false) Integer paramInteger1, @RequestParam(name = "specId", required = false) Integer paramInteger2, @RequestParam(name = "gradeId", required = false) Integer paramInteger3, @RequestParam(name = "bjId", required = false) Integer paramInteger4, @RequestParam(name = "studentIds", required = false) String paramString5, @RequestParam(name = "num", required = true) Integer paramInteger5, @RequestParam(name = "pageNo", defaultValue = "1") Integer paramInteger6, @RequestParam(name = "pageSize", defaultValue = "10") Integer paramInteger7);

    @GetMapping({"/common/veCommon/queryBanJiById"})
    public abstract Result<?> queryBanJiById(@RequestParam(name = "interfaceUserId", required = true) String paramString, @RequestParam(name = "banJiId", required = true) Integer paramInteger);

    @GetMapping({"/common/veCommon/queryDepartmentList"})
    public abstract Result<?> queryDepartmentList(@RequestParam(name = "interfaceUserId", required = true) String paramString);

    @GetMapping({"/common/veCommon/queryDepartmentAndTeacherList"})
    public abstract Result<?> queryDepartmentAndTeacherList(@RequestParam(name = "interfaceUserId", required = true) String paramString);

    @GetMapping({"/common/veCommon/queryCampusList"})
    public abstract Result<?> queryCampusList(@RequestParam(name = "interfaceUserId", required = true) String paramString);

    @GetMapping({"/common/veCommon/queryTeacherByUserId"})
    public abstract Result<?> queryTeacherByUserId(@RequestParam(name = "interfaceUserId", required = true) String paramString1, @RequestParam(name = "userId", required = true) String paramString2);

    @GetMapping({"/common/veCommon/queryTeacherByGH"})
    public abstract Result<?> queryTeacherByGH(@RequestParam(name = "interfaceUserId", required = true) String paramString1, @RequestParam(name = "gh", required = true) String paramString2);

    @GetMapping({"/common/veCommon/queryStudentByUserId"})
    public abstract Result<?> queryStudentById(@RequestParam(name = "interfaceUserId", required = true) String paramString1, @RequestParam(name = "userId", required = true) String paramString2);

    @GetMapping({"/common/veCommon/querySemesterList"})
    public abstract Result<?> querySemesterList(@RequestParam(name = "interfaceUserId", required = true) String paramString);

    @GetMapping({"/common/veCommon/queryProvinceList"})
    public abstract Result<?> queryProvinceList(@RequestParam(name = "interfaceUserId", required = true) String paramString);

    @GetMapping({"/common/veCommon/queryCityListByProvinceId"})
    public abstract Result<?> queryCityList(@RequestParam(name = "interfaceUserId", required = true) String paramString, @RequestParam(name = "provinceId", required = true) Integer paramInteger);

    @GetMapping({"/common/veCommon/queryCountyListByCityId"})
    public abstract Result<?> queryCountyList(@RequestParam(name = "interfaceUserId", required = true) String paramString, @RequestParam(name = "cityId", required = true) Integer paramInteger);

    @GetMapping({"/common/veCommon/getTeacherList"})
    public abstract Result<?> getTeacherList(@RequestParam(name = "interfaceUserId", required = true) String paramString);

    @GetMapping({"/common/veCommon/getTeacherListTeacher"})
    public abstract Result<?> getTeacherListTeacher(@RequestParam(name = "interfaceUserId", required = true) String paramString);

    @GetMapping({"/common/veCommon/getStudentList"})
    public abstract Result<?> getStudentList(@RequestParam(name = "interfaceUserId", required = true) String paramString1, @RequestParam(name = "name", required = false) String paramString2);

    @GetMapping({"/common/veCommon/getStudentInfoListStudentInfo"})
    public abstract Result<?> getStudentInfoListStudentInfo(@RequestParam(name = "interfaceUserId", required = true) String paramString);

    @GetMapping({"/common/veCommon/getTeacherPageList"})
    public abstract Result<?> getTeacherPageList(@RequestParam(name = "interfaceUserId", required = true) String paramString1, @RequestParam(name = "gh", required = false) String paramString2, @RequestParam(name = "xm", required = false) String paramString3, @RequestParam(name = "sfzjh", required = false) String paramString4, @RequestParam(name = "depId", required = false) Integer paramInteger1, @RequestParam(name = "jyzId", required = false) Integer paramInteger2, @RequestParam(name = "bzlbm", required = false) String paramString5, @RequestParam(name = "jzglbm", required = false) String paramString6, @RequestParam(name = "teacherIds", required = false) String paramString7, @RequestParam(name = "pageNo", defaultValue = "1") Integer paramInteger3, @RequestParam(name = "pageSize", defaultValue = "10") Integer paramInteger4);

    @GetMapping({"/common/veCommon/getTeacherById"})
    public abstract Result<?> getTeacherById(@RequestParam(name = "interfaceUserId", required = true) String paramString, @RequestParam(name = "teacherId", required = true) int paramInt);

    @GetMapping({"/common/veCommon/getStudentById"})
    public abstract Result<?> getStudentById(@RequestParam(name = "interfaceUserId", required = true) String paramString, @RequestParam(name = "studentId", required = true) int paramInt);

    @GetMapping({"/common/veCommon/getStudentInfoById"})
    public abstract Result<?> getStudentInfoById(@RequestParam(name = "interfaceUserId", required = true) String paramString, @RequestParam(name = "studentInfoId", required = true) int paramInt);

    @GetMapping({"/common/veCommon/queryDictionaryByCode"})
    public abstract Result<?> queryDictionaryByCode(@RequestParam(name = "interfaceUserId", required = true) String paramString1, @RequestParam(name = "code", required = true) String paramString2);

    @GetMapping({"/common/veCommon/queryDictDataByModelCode"})
    public abstract Result<?> queryDictDataByModelCode(@RequestParam(name = "interfaceUserId", required = true) String paramString1, @RequestParam(name = "modelCode", required = true) String paramString2, @RequestParam(name = "code", required = false) String paramString3);

    @GetMapping({"/common/veCommon/queryDictDataByModelCodeTitle"})
    public abstract Result<?> queryDictDataByModelCodeTitle(@RequestParam(name = "interfaceUserId", required = true) String paramString1, @RequestParam(name = "modelCode", required = true) String paramString2, @RequestParam(name = "title") String paramString3);

    @GetMapping({"/common/veCommon/queryDictionaryTreeList"})
    public abstract Result<?> queryDictionaryTreeList(@RequestParam(name = "interfaceUserId", required = true) String paramString);

    @PostMapping({"/common/veCommon/addVeBaseDictionary"})
    public abstract Result<?> addVeBaseDictionary(@RequestBody VeBaseDictionary paramVeBaseDictionary);

    @PutMapping({"/common/veCommon/editVeBaseDictionary"})
    public abstract Result<?> editVeBaseDictionary(@RequestBody VeBaseDictionary paramVeBaseDictionary);

    @DeleteMapping({"/common/veCommon/deleteVeBaseDictionary"})
    public abstract Result<?> deleteVeBaseDictionary(@RequestParam(name = "id", required = true) String paramString1, @RequestParam(name = "interfaceUserId", required = true) String paramString2);

    @PostMapping({"/common/veCommon/addVeBaseDictData"})
    public abstract Result<?> addVeBaseDictData(@RequestBody VeBaseDictData paramVeBaseDictData);

    @PutMapping({"/common/veCommon/editVeBaseDictData"})
    public abstract Result<?> editVeBaseDictData(@RequestBody VeBaseDictData paramVeBaseDictData);

    @DeleteMapping({"/common/veCommon/deleteVeBaseDictData"})
    public abstract Result<?> deleteVeBaseDictData(@RequestParam(name = "id", required = true) String paramString1, @RequestParam(name = "interfaceUserId", required = true) String paramString2);

    @PostMapping({"/common/veCommon/addVeBaseAppUser"})
    @Transactional
    public abstract Result<?> addVeBaseAppUser(@RequestBody VeBaseAppUser paramVeBaseAppUser);

    @GetMapping({"/common/veCommon/getStudentInfoByUserId"})
    public abstract Result<?> getStudentInfoByUserId(@RequestParam(name = "interfaceUserId", required = true) String paramString1, @RequestParam(name = "userId", required = true) String paramString2);

    @DeleteMapping({"/common/veCommon/deleteAppUser"})
    public abstract Result<?> deleteAppUser(@RequestParam(name = "interfaceUserId", required = true) String paramString1, @RequestParam(name = "userId", required = true) String paramString2);

    @PostMapping({"/common/veCommon/editVeBaseAppUser"})
    public abstract Result<?> editVeBaseAppUser(@RequestBody VeBaseAppUser paramVeBaseAppUser);

    @GetMapping({"/common/veCommon/querySysLogPageList"})
    public abstract Result<?> querySysLogPageList(@RequestParam(name = "sysLog") SysLog paramSysLog, @RequestParam(name = "pageNo", defaultValue = "1") Integer paramInteger1, @RequestParam(name = "pageSize", defaultValue = "10") Integer paramInteger2);

    @GetMapping({"/common/veCommon/querySysLogPageListSX"})
    public abstract Result<?> querySysLogPageListSX(@RequestParam(name = "interfaceUserId", required = true) String paramString1, @RequestParam(name = "userName", required = false) String paramString2, @RequestParam(name = "ip", required = false) String paramString3, @RequestParam(name = "pageNo", defaultValue = "1") Integer paramInteger1, @RequestParam(name = "pageSize", defaultValue = "10") Integer paramInteger2);

    @GetMapping({"/common/veBase/getGradePageList"})
    public abstract Result<?> getGradePageList(@RequestParam(name = "veBaseGrade") VeBaseGrade paramVeBaseGrade, @RequestParam(name = "pageNo", defaultValue = "1") Integer paramInteger1, @RequestParam(name = "pageSize", defaultValue = "10") Integer paramInteger2, @RequestParam(name = "req") HttpServletRequest paramHttpServletRequest);

    @GetMapping({"/common/veBase/getFacultyPageList"})
    public abstract Result<?> getFacultyPageList(@RequestParam(name = "veBaseFaculty") VeBaseFaculty paramVeBaseFaculty, @RequestParam(name = "pageNo", defaultValue = "1") Integer paramInteger1, @RequestParam(name = "pageSize", defaultValue = "10") Integer paramInteger2, @RequestParam(name = "req") HttpServletRequest paramHttpServletRequest);

    @GetMapping({"/common/veCommon/querySysConfigList"})
    public abstract Result<?> querySysConfigList(@SpringQueryMap VeBaseSysConfig paramVeBaseSysConfig);

    @GetMapping({"/common/veCommon/getGraduatePeopleCount"})
    public abstract Result<?> getGraduatePeopleCount(@RequestParam(name = "interfaceUserId", required = true) String paramString1, @RequestParam(name = "specName", required = false) String paramString2);
}
